Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
if self.is_domain_managed(dom):
self._managed_config_remove(dom.get_uuid())
del self.managed_domains[dom.get_uuid()]
- dom.unlink_xapi_instances()
dom.destroy_xapi_instances()
except ValueError:
log.warn("Domain is not registered: %s" % dom.get_uuid())
if domid in self.domains:
del self.domains[domid]
- info.unlink_xapi_instances()
info.destroy_xapi_instances()
else:
log.warning("Attempted to remove non-existent domain.")
except Exception, exn:
raise XendError('Failed to destroy device')
- def unlink_xapi_instances(self):
- from xen.xend import XendDomain
- if XendDomain.instance().is_valid_vm(self.info.get('uuid')):
- # domain still exists.
- return
-
- for vbd_ref in self.info.get('vbd_refs'):
- dev_info = self.info['devices'].get(vbd_ref)[1]
- vdi = XendNode.instance().get_vdi_by_uuid(dev_info['VDI'])
- if vdi.getVBDs().count(vbd_ref):
- vdi.removeVBD(vbd_ref)
-
def destroy_xapi_instances(self):
"""Destroy Xen-API instances stored in XendAPIStore.
"""